Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO


■HD BIOS
	HD BIOSの概要
      o HD BIOSは、ハードディスク・MO・CD-ROM等にアクセスするためのBIOSである。
	HD BIOSでは、AHの下位4ビットで動作を指定し、上位4ビットでその動作に
	付随した機能の指定などを行う。このため、HD BIOSでは下位4ビットの
	値を元に昇順に配列してある。
用語	SASI(SASI I/F, SASI HD, SASI BIOS)
      o SASI型は、PC-9800で最初にサポートされたハードディスクである。
	本書では、SASI用ハードディスクインターフェースをSASI I/F、SASI型
	ハードディスクドライブをSASI HD、これらを制御するBIOSをSASI BIOSと
	呼ぶ。
      o	SASI HDは、SASI I/Fに2台まで接続できる。
	SASI HDの容量は、NEC製品では1台あたり40Mバイトが最大だが、
	サードパーティ製品にはそれ以上の容量を持つものがある。
      o	拡張スロットに実装するSASI I/Fには、PC-9801-07・27がある。
	SASI I/Fを内蔵している機種、内蔵ドライブを追加可能な機種もある。
      o SASI BIOSは通常、ノーマルモード(PC-9801Mを除く)ではD7000〜D7FFFhに、
	PC-9801MではD6000〜D6FFFhに配置される。ハイレゾモードでは
	本体BIOS ROM(セグメントF800h)内に含まれている。
用語	SCSI(SCSI I/F, SCSI HD, SCSI BIOS)
      o SCSIは、大容量のハードディスクや各種の周辺機器を接続するために
	導入された。
	本書では、SCSI用ハードディスクインターフェースをSCSI I/F、SCSI型
	ハードディスクドライブをSCSI HD、これらを制御するBIOSをSCSI BIOSと
	呼ぶ。
      o	SCSI I/F上のBIOS ROM内には、SCSI BIOSとともに、SCSI機器全般を
	制御できるSCSIインターフェース共通BIOSも含まれている。
	SCSI BIOSとSCSIインターフェース共通BIOSは、両方ともINT 1Bhで
	呼び出す。DA/UAの値により、どちらかが選択される。
      o	SCSI I/Fには、SCSI機器を最大7台まで接続できる。ただし、MS-DOSでは
	ソフトウェア上の仕様の制限で、ハードディスクは最大4台までしか認識
	しない。
	SCSI I/Fには、MOやCD-ROM(SCSI対応)を接続することもできる。これらの
	機器にも、SCSI BIOSでアクセス可能。
      o	拡張スロットに実装するSCSI I/Fには、PC-9801-55・55L・55U・92,
	PC-H98-B03・B12がある。
	SCSI I/Fを内蔵している機種、内蔵ドライブを追加可能な機種もある。
	SCSI I/Fには、CD-ROM接続用にPC-9801-55よりも前に発売されたPC-9801-50
	という製品があるが、本書では取り上げない。
      o MS-DOSは、バージョン3.3以降の製品からSCSI HDに対応している。MS-DOS 3.1
	以前の製品は、SCSI HDに対応していない。
	3.5"MOは、バージョン5.0以降で対応している。
      o SCSI BIOSは通常、ノーマルモード(PC-9801・E・F・Mを除く)ではDC000〜DCFFFh
	に、PC-9801・E・F・MではD4000〜D4FFFhに配置される。ハイレゾモードでは
	EC000〜ECFFFhに配置される。
	ただし、PC-H98-B03・B12、およびそれと互換性のあるH98内蔵SCSIのBIOSは、
	セットアップ時にROMアドレスが決定される。また、BIOSのサイズは
	8Kバイトである。
      u PC-9801-55・55L・55U,PC-H98-B03(および互換内蔵型SCSI I/F)では、SCSIの
	INQUIRYコマンドで得られるベンダ名の先頭3バイトが"NEC"でないハード
	ディスクは接続できない。MOやCD-ROMにはこのような制限はない。
	PC-9801-92,PC-H98-B12(および互換内蔵型SCSI I/F)では、ベンダ名
	チェックは行わない。
      o SASI I/Fと共存させることが可能。
用語	ESDI(ESDI I/F, ESDI HD, ESDI BIOS)
      o ESDIは、PC-H98の内蔵ドライブで導入された。
	本書では、ESDI用ハードディスクインターフェースをESDI I/F、ESDI型
	ハードディスクドライブをESDI HD、これらを制御するBIOSをESDI BIOSと
	呼ぶ。
      o	ESDI型H98内蔵ハードディスクには、PC-H98/70-E01・E02・E03,PC-H98S/8-E01が
	ある。
	PC-H98/70-E01・03,PC-H98S/8-E01には、外部にSASI HDを増設することが
	できる。このSASI HDはESDI BIOSが制御する。
      o MS-DOSは、バージョン3.3B以降の製品からESDI HDに正式対応している。実際
	にはバージョン3.3(PS98-013)から対応。MS-DOS 3.1以前の製品は、
	ESDI HDに対応していない。
      o ESDI BIOSは、セットアップ時にROMアドレスが決定される。BIOSのサイズは
	8Kバイトである。
      o SASI I/F、SCSI I/Fと共存させることが可能。
用語	IDE(IDE I/F, IDE HD, IDE BIOS, IDE CD-ROM)
      o IDEは、98NOTEに内蔵するための2.5インチハードディスクで最初に導入
	された。その後、性能面・価格面での優位性から、デスクトップでも
	採用された。内蔵型のみ存在する。
	本書では、IDE用ハードディスクインターフェースをIDE I/F、IDE型
	ハードディスクドライブをIDE HD、これらを制御するBIOSをIDE BIOSと
	呼ぶ。
      o	IDE HDは98NOTE,PC-9821,PC-9801UR・US・BA・BX・BA2・BS2・BX2,PC-H98Tに
	内蔵できる。
	PC-9821Bp・Bs・Be,PC-9801BA2・BS2・BX2では、2台目のIDEが使用可能。その
	他の機種では1台だけ使用できる。
	2台目のIDEは、ハードディスクかCD-ROMかを選択できる。IDE I/Fに接続
	されたCD-ROMをIDE CD-ROMと呼ぶ。
      o IDE BIOSは通常、ノーマルモードではD8000〜DBFFFhに配置される。ハイレゾ
	モードではE6000〜E9FFFhに配置される。
	98NOTEを除くIDEサポート機では、IDE HD/CD-ROMを内蔵したときだけ
	IDE BIOSが出現する。
	98NOTEのIDE BIOSは、RAMドライブやシステム制御用のBIOSと同じアドレスに
	存在する。
      o BIOSレベルではSASI BIOSと互換性がある。40Mバイト以下の容量であれば、
	バージョン3.1以前のMS-DOSでも使用できる。40Mバイトを超える容量の
	場合は、MS-DOS 3.3以降が必要。
      o	SCSI I/Fと共存させることが可能。ESDIとIDEを両方内蔵できる機種はない。
	IDE BIOSが出現している場合には、SASI I/Fは使用できない。
用語	リニアセクタアドレス
      o	アクセスするセクタを指定する方法のひとつ。ディスク内の全セクタに
	対して、0から始まる連続した番号をつけ、その番号でセクタを指定する
	方法。一次元の配列(配列の1要素が1セクタ)のようなイメージでアクセス
	できる。
      u	MOやCD-ROMにアクセスする場合は、リニアセクタアドレスを用いる。
用語	絶対セクタアドレス
      o	アクセスするセクタを指定する方法のひとつ。セクタを指定するとき、
	シリンダ番号・ヘッド番号・トラック内のセクタ番号を用いる。
      u	MOやCD-ROMにアクセスする場合は、絶対セクタアドレスを使用しないほうが
	良い。
用語	DA/UA
      o	DISK BIOSでは、アクセスする装置名を指定するために、DA/UA
	(Device Address/Unit Address)と呼ばれる値を用いる。
	上位4bitのDAで装置の種類を指定する。下位4bitのUAで同種の装置のなかの
	何台目のドライブかを指定する。
	たとえば、SASI I/Fに接続された1台目のHDDを指定する場合はDA/UA=80h、
	2台目を指定する場合はDA/UA=81hとする。
	SCSI I/Fに接続されたデバイスの場合は、UAにSCSI IDと同じ値を指定する。
      o	HD BIOSでは、アクセスするセクタを指定する方法が2種類
	(リニアセクタアドレスと絶対セクタアドレス)用意されている。
	同じドライブに対して、セクタ指定の方法ごとに、DAの値が割り当てられて
	いる
	(表:「HD BIOSのセクタ指定方法とDA/UAの対応」参照)。
	たとえば、SCSI ID 0のHDDでリニアセクタアドレスでアクセスするには、
	DA/UA=20hを指定する。絶対セクタアドレスでアクセスするには、DA/UA=A0h
	を指定する。IDEの2台目のHDDにリニアセクタアドレスでアクセスするには、
	DA/UA=01hを指定する。
表	HD BIOSのセクタ指定方法とDA/UAの対応
	----------------+-------------+-------------
	\セクタ指定方法|リニアセクタ |絶対セクタ   
	インターフェース種別  \|     アドレス|     アドレス
	----------------+-------------+-------------
	SASI・ESDI・IDE   |  00〜03h    |  80〜83h    
	SCSI            |  20〜26h    |  A0〜A6h    
	----------------+-------------+-------------
	* n=装置番号
      o 参考のため、DA/UAの一覧を表「全DA/UAとデバイスの対応一覧」に示す。
表	全DA/UAとデバイスの対応一覧
	-------+---------------------------------------------------------------
	DA/UA  |デバイス
	-------+---------------------------------------------------------------
	00h    |SASI・IDE HD #1(リニアセクタアドレス指定)
	01h    |SASI・IDE HD/CD-ROM #2(リニアセクタアドレス指定)
	02h    |ESDI HD(リニアセクタアドレス指定)
	03h    |SASI HD(ESDI I/F接続)(リニアセクタアドレス指定)
	04〜07h|NECCD.SYSで使用
	10〜13h|両用BIOS - 1MB I/Fモード+640KBアクセスモード
	20h    |SCSI HD/MO/CD-ROM : SCSI ID=0(リニアセクタアドレス指定)
	21h    |SCSI HD/MO/CD-ROM : SCSI ID=1(リニアセクタアドレス指定)
	22h    |SCSI HD/MO/CD-ROM : SCSI ID=2(リニアセクタアドレス指定)
	23h    |SCSI HD/MO/CD-ROM : SCSI ID=3(リニアセクタアドレス指定)
	24h    |SCSI HD/MO/CD-ROM : SCSI ID=4(リニアセクタアドレス指定)
	25h    |SCSI HD/MO/CD-ROM : SCSI ID=5(リニアセクタアドレス指定)
	26h    |SCSI HD/MO/CD-ROM : SCSI ID=6(リニアセクタアドレス指定)
	30〜33h|両用BIOS - 1MB I/Fモード+1.44MBアクセスモード
	40h    |RAMドライブBIOSイニシャライズ用
	50〜53h|320KB FD BIOS
	60〜63h|BRANCH 4670仮想ディスク
	70〜73h|640KB専用BIOS,両用BIOS - 640KB I/Fモード+640KBアクセスモード
	80h    |SASI・IDE HD #1(絶対セクタアドレス指定)
	81h    |SASI・IDE HD/CD-ROM #2(絶対セクタアドレス指定)
	82h    |ESDI HD(絶対セクタアドレス指定)
	83h    |SASI HD(ESDI I/F接続)(絶対セクタアドレス指定)
	84〜87h|NECCD.SYSで使用
	90〜93h|1MB専用BIOS,両用BIOS - 1MB I/Fモード+1MBアクセスモード
	A0h    |SCSI HD/MO/CD-ROM : SCSI ID=0(絶対セクタアドレス指定)
	A1h    |SCSI HD/MO/CD-ROM : SCSI ID=1(絶対セクタアドレス指定)
	A2h    |SCSI HD/MO/CD-ROM : SCSI ID=2(絶対セクタアドレス指定)
	A3h    |SCSI HD/MO/CD-ROM : SCSI ID=3(絶対セクタアドレス指定)
	A4h    |SCSI HD/MO/CD-ROM : SCSI ID=4(絶対セクタアドレス指定)
	A5h    |SCSI HD/MO/CD-ROM : SCSI ID=5(絶対セクタアドレス指定)
	A6h    |SCSI HD/MO/CD-ROM : SCSI ID=6(絶対セクタアドレス指定)
	B0〜B3h|両用BIOS - 1MB I/Fモード+1.44MBアクセスモード(Undocumented)
	C0h    |SCSI DEVICE: SCSI ID=0
	C1h    |SCSI DEVICE: SCSI ID=1
	C2h    |SCSI DEVICE: SCSI ID=2
	C3h    |SCSI DEVICE: SCSI ID=3
	C4h    |SCSI DEVICE: SCSI ID=4
	C5h    |SCSI DEVICE: SCSI ID=5
	C6h    |SCSI DEVICE: SCSI ID=6
	D0h    |ROMドライブ(DISK BIOSでのアクセスは不可)
	D1h    |PCMCIAメモリカード(DISK BIOSでのアクセスは不可)
	E0h    |RAMDISK.SYS
	F0〜F3h|両用BIOS - 640KB I/Fモード+1MBアクセスモード
	-------+---------------------------------------------------------------


	■リターンコード一覧
	---------------+---+------------------------------------
	AH             |CF |内容
	---------------+---+------------------------------------
	0000xxxxb(00h) | 0 | Normal End
	00001xxxb(08h) | 0 | Corrected Data
	0001xxxxb(10h) | 0 | Control Mark
	0010xxxxb(20h) | 1 | DMA Boundary
	00111xxxb(38h) | 1 | Illegal Disk Address
	0100xxxxb(40h) | 1 | Equipment Check
	0101xxxxb(50h) | 1 | Over Run
	0110xxxxb(60h) | 1 | Not Ready
	1110xxxxb(70h) | 1 | Not Writable
	10001xxxb(88h) | 1 | Direct Access an Alternate Track
	1001xxxxb(90h) | 1 | Time Out
	1010xxxxb(A0h) | 1 | Data Error (ID)
	1011xxxxb(B0h) | 1 | Data Error (Data)
	10111xxxb(B8h) | 1 | Data Error
	1100xxxxb(C0h) | 1 | No Data
	11001xxxb(C8h) | 1 | Seek Error
	11011xxxb(D8h) | 1 | Unreadable Alternate Track
	1110xxxxb(E0h) | 1 | Missing Address Mark (ID)
	1111xxxxb(F0h) | 1 | Missing Address Mark (Data)
	---------------+---+------------------------------------


INT 1Bh - Function 00h(SASI)
分類	SASI BIOS
名前	指定シリンダへのシーク
	Undocumented
対象	SASI(PC-9801VX4以降のノーマル内蔵型)
入力	AH=x0h(xは任意)
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI        |リニアセクタアドレス  |00h,01h
	SASI        |絶対セクタアドレス    |80h,81h
	------------+----------------------+-----------
	■リニアセクタアドレス指定時
	    DX:CX=リニアセクタアドレス(0〜)
	■絶対セクタアドレス指定時
    	    CX=シリンダ番号(0〜)
    	    DH=ヘッド番号(0〜)
    	    DL=00h
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	10h(CF=0)|Control Mark
	         |一定時間以内にシークが完了しなかった
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	90h(CF=1)|Time Out
	         |デバイスが接続されていない
	---------+------------------------------------------
解説  o 指定されたセクタの存在するシリンダにヘッドをシークさせる。
      o このファンクションは、PC-9801VX4以降のノーマルモード内蔵型
	SASI BIOSにのみ存在する。PC-9801-27、SCSI・ESDI・IDE BIOS、
	ハイレゾモードのSASI BIOS等には存在しない。
関連	


INT 1Bh - Function B0h(SCSI)
分類	DISK BIOS
名前	WD33C93へのコマンド送信
	Undocumented
対象	SCSI(PC-9801-55初代を除く)
入力	AH=D0h
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
	DS:SI=WD33C93に送信するコマンドを格納したメモリの先頭アドレス
	DX   =WD33C93に送信するコマンドのサイズ(単位:バイト)
	ES:BP=SCSI機器との送受信バッファの先頭アドレス
	BX   =SCSI機器との送受信バッファのサイズ(単位:バイト)
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o SCSI I/F上のWD33C93(SCSIコントローラ)にコマンドを送り、データを
	送受信する。
      o DS:SI(ES:BP)とDX(BX)は、指定領域が物理アドレスの64Kバイトの境界を
	跨がないように設定する必要がある。たとえば、DS:SI=7000:FF00h, DX=0400h
	のような領域を指定することはできない。
関連	


INT 1Bh - Function D0h(IDE)
分類	DISK BIOS
名前	モータ状態取得の準備
	Undocumented
対象	IDE
入力	AH=D0h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	IDE         |00h,01h,80h,81h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o IDE HDにPowerCommand(E5hモータ状態のセンス)を送る。
        結果は出力レジスタには反映されない。
      o このファンクションを実行した直後に、I/O 0644h(SectorCount)から
	読み出しを行なうと、IDE HDのモータ回転状態が返される。
	-------------+--------------------------------
	I/O 0644hの値|モータの状態
	-------------+--------------------------------
	FFh          |モータ回転中
	00h          |モータ停止中
	BBh          |パワーロック(PC-9800では使用していない)
	-------------+--------------------------------
関連	INT 1Bh - Function E0h(IDE)
	INT 1Bh - Function F0h(IDE)
	0000:0457h
	I/O 0644h


INT 1Bh - Function E0h(IDE)
分類	DISK BIOS
名前	MOTOR ON
	Undocumented
対象	IDE
入力	AH=E0h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	IDE         |00h,01h,80h,81h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o IDE HDのスピンドルモータをONする。
      o	このファンクションを実行しなくても、ハードディスクにアクセスする
	ファンクションを実行すれば、モータは自動的にONになる。ただし、
	READY状態になるまで通常4〜5秒かかる。
関連	INT 1Bh - Function D0h(IDE)
	INT 1Bh - Function F0h(IDE)
	INT 17h(外部割り込み…IDE)
	0000:0457h


INT 1Bh - Function F0h(IDE)
分類	DISK BIOS
名前	MOTOR OFF
	Undocumented
対象	IDE
入力	AH=F0h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	IDE         |00h,01h,80h,81h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o IDE HDのスピンドルモータをOFFする。
      o	ハードディスクにアクセスするファンクションを実行すると、モータは
	自動的にONになる。ただし、READY状態になるまで通常4〜5秒かかる。
関連	INT 1Bh - Function D0h(IDE)
	INT 1Bh - Function E0h(IDE)
	INT 1Fh - Function 9A07h
	INT 17h(外部割り込み…IDE)
	0000:0457h


INT 1Bh - Function 01h(SASI/SCSI/ESDI/IDE)
分類	DISK BIOS
名前	ベリファイ(VERIFY)
対象	SASI, SCSI, ESDI, IDE
入力	AH=
	    ■[SASI・ESDI・IDE]
	    bit 7,6=00b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=0001b
	    ■[SCSI]
	    bit 7=0
	    bit 6=e
		1=エラーセクタ通知あり
		0=エラーセクタ通知なし
	    bit 5,4=00b
	    bit 3〜0=0001b
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI・IDE    |リニアセクタアドレス  |00h,01h,03h
	SASI・IDE    |絶対セクタアドレス    |80h,81h,83h
	ESDI        |リニアセクタアドレス  |02h
	ESDI        |絶対セクタアドレス    |82h
	SCSI        |リニアセクタアドレス  |20〜26h
	SCSI        |絶対セクタアドレス    |A0〜A6h
	------------+----------------------+-----------
	BX=転送バイト数
	■リニアセクタアドレス指定時
	    DX:CX=リニアセクタアドレス(0〜)
	■絶対セクタアドレス指定時
    	    CX=シリンダ番号(0〜)
    	    DH=ヘッド番号(0〜)
    	    DL=セクタ番号(0〜)
	ES:BP=転送アドレス
出力	CF=終了条件
	  1=異常終了
	  0=正常終了
	AH=ステータス情報
	■[SCSI] AH bit 6=1(エラーセクタ通知あり)でエラー発生のとき
	DX,CX=エラーセクタアドレス
解説  o 指定されたセクタを読み取り、リターンコードを返す。
      u	メモリへの転送は行わないが、INT 1Bh - Function 06h(SASI/SCSI/ESDI/IDE)
	と同じように入力パラメータのチェックが行われるので、以下の条件を
	守らなければエラーになる。
      o ES:BP(転送アドレス)とBX(転送バイト数)は、指定領域が物理アドレスの
	64Kバイトの境界を跨がないように設定する必要がある。たとえば、
	ES:BP=7000:FF00h, BX=0400hのような領域を指定することはできない。
	これに反したとき、SASI・ESDI・IDE BIOSではDMAバウンダリエラーが起きる。
      o	BX(転送バイト数)には、セクタ長の整数倍を指定しなければならない。
	セクタ長で割り切れない値を指定すると、端数は切り捨てられる。
      u BX(転送バイト数)に0000hを指定すると、64Kバイトのリードを
	行う。(Undocumented)
	ただし、リードを行わずに異常終了するBIOSもある模様。
      u BX(転送バイト数)に1〜セクタ長-1を指定した場合、SASI・ESDI BIOSはハング
	する。SCSI BIOSはリードせずに正常終了する。IDE BIOSは64Kバイトリード
	する。
      o PC-H98は、1Mバイト超の領域に転送可能なインダイレクトモードをサポート
	している。インダイレクトモードが使用可能かどうかは0000:0590h bit 6
	(SASI・ESDI), bit 4(SCSI)で判断できる。インダイレクトモードを指定する
	場合は、0000:0590h bit 7(SASI・ESDI), bit 5(SCSI)を1にする。この
	ビットが0のときは、従来互換のダイレクトモードである。
	ダイレクトモードでは、直接ES:BPで転送アドレスを指定するが、
	インダイレクトモードのときは、ES:BPで間接的に転送アドレスを指定する
	ようになる。すなわち、転送アドレスは32ビットのリニアアドレスでメモリ
	上に書き込む。ES:BPで、32ビットのリニアアドレスが書き込まれたメモリの
	アドレスを指定する。
	インダイレクトモードで一度BIOSを実行すると、必ずダイレクトモードに
	戻される。
関連	INT 1Bh - Function 02h(SCSI)
	0000:0590h


INT 1Bh - Function 02h(SCSI)
分類	DISK BIOS
名前	データの書き込みとベリファイ (WRITE&VERIFY)
対象	SCSI
入力	AH  bit 7=0
	    bit 6=e
		1=エラーセクタ通知あり
		0=エラーセクタ通知なし
	    bit 5,4=00b
	    bit 3〜0=0010b
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SCSI        |リニアセクタアドレス  |20〜26h
	SCSI        |絶対セクタアドレス    |A0〜A6h
	------------+----------------------+-----------
	BX=転送バイト数
	■リニアセクタアドレス指定時
	    DX:CX=リニアセクタアドレス(0〜)
	■絶対セクタアドレス指定時
    	    CX=シリンダ番号(0〜)
    	    DH=ヘッド番号(0〜)
    	    DL=セクタ番号(0〜)
	ES:BP=転送アドレス
出力	CF=終了条件
	  1=異常終了
	  0=正常終了
	AH=ステータス情報
	■AH bit 6=1(エラーセクタ通知あり)でエラー発生のとき
	DX,CX=エラーセクタアドレス
解説  o 指定されたセクタにデータを書き込んだあと、ベリファイを行う。
	リニアセクタアドレス指定を用いれば、MOへの書き込みも行える。
      o ES:BP(転送アドレス)とBX(転送バイト数)は、転送領域が物理アドレスの
	64Kバイトの境界を跨がないように設定する必要がある。たとえば、
	ES:BP=7000:FF00h, BX=0400hのような領域を指定することはできない。
      u	SCSI BIOSはDMAバウンダリのチェックをしていない。転送領域がセグメントを
	跨いでいると、セグメント内でラップアラウンドが起きるので注意が必要。
      o	BX(転送バイト数)には、セクタ長の整数倍を指定しなければならない。
	セクタ長で割り切れない値を指定すると、端数は切り捨てられる。
      u BX(転送バイト数)に0000hを指定すると、64Kバイトの転送を
	行う。(Undocumented)
	ただし、転送を行わずに異常終了するBIOSもある模様。
      u BX(転送バイト数)に1〜セクタ長-1を指定した場合、SCSI BIOSは転送せずに
	正常終了する。
      o PC-H98は、1Mバイト超の領域に転送可能なインダイレクトモードをサポート
	している。インダイレクトモードが使用可能かどうかは0000:0590h bit 6
	(SASI・ESDI), bit 4(SCSI)で判断できる。インダイレクトモードを指定する
	場合は、0000:0590h bit 7(SASI・ESDI), bit 5(SCSI)を1にする。この
	ビットが0のときは、従来互換のダイレクトモードである。
	ダイレクトモードでは、直接ES:BPで転送アドレスを指定するが、
	インダイレクトモードのときは、ES:BPで間接的に転送アドレスを指定する
	ようになる。すなわち、転送アドレスは32ビットのリニアアドレスでメモリ
	上に書き込む。ES:BPで、32ビットのリニアアドレスが書き込まれたメモリの
	アドレスを指定する。
	インダイレクトモードで一度BIOSを実行すると、必ずダイレクトモードに
	戻される。
関連	INT 1Bh - Function 01h(SASI/SCSI/ESDI/IDE)
	INT 1Bh - Function 05h(SASI/SCSI/ESDI/IDE)


INT 1Bh - Function 03h(SASI/SCSI/ESDI/IDE)
分類	DISK BIOS
名前	初期化 (INITIALIZE)
対象	SASI, SCSI, ESDI, IDE
入力	AH=03h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値(xは任意)
	------------+-----------
	SASI・IDE    |0xh,8xh
	ESDI        |0xh,8xh
	SCSI        |2xh,Axh
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o コントローラ、ワークエリア等の初期化を行う。
	システム起動時には、すでに初期化されている。
      u ハードディスクの接続状況を調べ、システム共通域に登録する。
関連	0000:0460h
	0000:0482h
	0000:055Ch


INT 1Bh - Function 04h(SASI/ESDI/IDE)
分類	DISK BIOS
名前	センス (SENSE)
対象	SASI, ESDI, IDE
入力	AH=04h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SASI・IDE    |00h,01h,03h,80h,81h,83h
	ESDI        |02h,82h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	0xh(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	60h(CF=1)|Not Ready
	         |デバイスが接続されていない■[ESDI]
	90h(CF=1)|Time Out
	         |デバイスが接続されていない■[SASI]
	---------+------------------------------------------
	■AH=0xhのとき
	AH bit 3〜0=容量
	    0h:  5Mバイト
	    1h: 10Mバイト
	    2h: 15Mバイト
	    3h: 20Mバイト
	    4h: 25Mバイト
	    5h: 40Mバイト
	    9h: ESDI 100Mバイト
	    Fh: IDE 80Mバイト以上
解説  o ハードディスクの容量を取得する。
      u	AHに返される容量を示す値は、INT 1Bh - Function 84h(SASI)の
	AHと異なるので注意。また、テクニカルデータブックの記述は実機での
	実行結果と一致しない。
      u ドライブが接続されていないとき、SASIとESDIはリターンコードで
	エラーを返す。IDEは常に正常終了する。
      o ハードディスクの接続状況はシステム共通域(0000:055Ch bit 11〜8)に
	示されている。
関連	INT 1Bh - Function 84h(SASI)
	0000:055Ch bit 11〜8


INT 1Bh - Function 04h(SCSI)
分類	DISK BIOS
名前	レディ状態のセンス
	Undocumented
対象	SCSI(PC-9801-55初代を除く)
入力	AH=04h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |デバイスはReady状態
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	6xh(CF=1)|Not Ready
	         |デバイスはNot Ready状態(MOやCD-ROMでディスクが
		 |セットされていないときなど)
	90h(CF=1)|Time Out
	         |デバイスが接続されていない
	---------+------------------------------------------
解説  o ロジカルユニットの使用可否状態(レディ状態)をテストする。
      o ハードディスクの接続状況は、システム共通域(0000:0482h)に示されている。
関連	INT 1Bh - Function 84h(SCSI)
	0000:0482h


INT 1Bh - Function 14h(SCSI)
分類	DISK BIOS
名前	デバイスタイプの取得
	Undocumented
対象	SCSI(PC-9801-55初代を除く)
入力	AH=14h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	90h(CF=1)|Time Out
	         |デバイスが接続されていない
	---------+------------------------------------------
	■AH=00hのとき
	BH bit 7   = RMB(Removable)
	            1=交換可能媒体
	            0=交換不能媒体
	BH bit 6〜0= Device Type Modifier
	BL bit 7,6= Peripheral Qualifier
	BL bit 5〜0= デバイスタイプ値
	------+--------------
	BLの値|意味
	------+--------------
	00h   |ハードディスク
	01h   |テープユニット
	05h   |CD-ROM
	07h   |3.5"MO
	84h   |5"MO
	------+--------------
解説  o SCSIデバイスにINQUIRYコマンドを発行して、デバイスの属性を得る。
	INQUIRYデータの先頭2バイトをBXレジスタに返す。
関連	0000:0460h
	INT DCh - Function 09h Subfunction 0000h


INT 1Bh - Function 24h(SCSI)
分類	DISK BIOS
名前	パラメータテーブルの設定
	Undocumented
対象	SCSI(PC-9801-55初代を除く)
入力	AH=24h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
	BX=セクタ長
	CX=シリンダ数
	DH=ヘッド数
	DL=セクタ数/トラック
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o SCSIデバイスの諸元をシステム共通域(0000:0460〜047Fh)にセットする。
	指定された諸元をシステム共通域に設定するだけなので、ドライブが接続
	されていない場合でも必ず正常終了する。
      o	INT 1Bh - Function 84h(SCSI)で取得できる諸元は、
	このファンクションでセットした値である。
      o	INT 1Bh - Function 44h(SCSI)で取得できるセクタの種類は、必ず
	ソフトセクタに設定される。
      u BX=0000hで実行するとハングする。
関連	0000:0460h
	INT 1Bh - Function 84h(SCSI)


INT 1Bh - Function 44h(SCSI)
分類	DISK BIOS
名前	センス2(SENSE2)
対象	SCSI
入力	AH=44h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
	■AH=00hのとき
	BX=セクタの種類
	    0002h: ハードセクタ
	    0001h: ソフトセクタ
解説  o ディスクのセクタの種類を返す。
      o	システム共通域を参照してその結果を返すだけなので、ドライブが接続
	されていない場合でも必ず正常終了する。
関連	0000:0460h


INT 1Bh - Function 54h(ESDI)
分類	DISK BIOS
名前	NESAスロット取得
	Undocumented
対象	ESDI
入力	AH=54h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	ESDI        |02h,82h
	------------+-----------
	BX=0000h
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
	■AH=00hのとき
	CH=製品コード
	    ESDI HD=02h
	CL=論理スロット番号
	    HDC専用スロット=06h
解説  o	HDCが実装されているスロット番号等を取得する。
関連	INT 1Fh - Function C0h


INT 1Bh - Function 84h(SASI/ESDI/IDE)
分類	DISK BIOS
名前	新センス
対象	SASI(PC-9801-27を除く), ESDI, IDE
入力	AH=84h
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI・IDE    |リニアセクタアドレス  |00h,01h,03h
	SASI・IDE    |絶対セクタアドレス    |80h,81h,83h
	ESDI        |リニアセクタアドレス  |02h
	ESDI        |絶対セクタアドレス    |82h
	------------+----------------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	0xh(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	60h(CF=1)|Not Ready
	         |デバイスが接続されていない■[ESDI]
	90h(CF=1)|Time Out
	         |デバイスが接続されていない■[SASI]
	---------+------------------------------------------
	■AH=0xhのとき
	AH bit 3〜0=容量
	    00h:  5Mバイト
	    01h: 10Mバイト
	    02h: 15Mバイト
	    03h: 20Mバイト
	    05h: 25Mバイト
	    07h: 40Mバイト
	    09h: ESDI 100Mバイト
	    0Fh: IDE 80Mバイト以上
	BX=セクタ長
	    0100h: 256バイト
	    0200h: 512バイト
	CX=シリンダ数-1
	DH=ヘッド数
	DL=セクタ数
解説  o ディスクの諸元を取得する。
      u	AHに返される容量を示す値は、INT 1Bh - Function 04h(SASI/ESDI/IDE)の
	AHと異なるので注意。また、テクニカルデータブックの記述は実機での
	実行結果と一致しない。
	CXにセットされる値は、テクニカルデータブックの記述とは異なり
	シリンダ数-1。
      u ドライブが接続されていないとき、SASIとESDIはリターンコードで
	エラーを返す。IDEは常に正常終了する。
      u PC-9801-27(5インチ固定ディスクインターフェースボード)上のBIOS、
	PC-9801-07(5インチ固定ディスクインターフェースボード)をサポート
	するBIOSは、このファンクションをサポートしていない(PC-9801F3・M3・VM4
	の内蔵型SASI BIOSは、これらの互換BIOSなので同様)。
	ただし、MS-DOS 3.1(PS98-011)以降のMS-DOS環境下では、MS-DOSが
	このファンクションをトラップし、エミュレートしている。このとき、
	0000:0480h bit 7=1になる。
      u	ハイレゾモードのSASI BIOS(本体F800hセグメント内)、PC-9801VX4以降の
	内蔵型SASI BIOS、ESDI BIOS、IDE BIOSは、このファンクションをサポート
	している。
      u このファンクションのサポートの有無は、以下のようにして判断する。
	1. ハイレゾモードは、必ずサポートしている。
	2. ノーマルモードでは、0000:0480h bit 7=1のとき、このファンクションが
	   使用できる。
	3. ESDI BIOS(DA/UA=02h,03h,82h,83h)は、必ずサポートしている
	   (0000:0480h bit 7は0)。
関連	INT 1Bh - Function 04h(SASI/ESDI/IDE)
	0000:0480h bit 7


INT 1Bh - Function 84h(SCSI)
分類	DISK BIOS
名前	新センス
対象	SCSI
入力	AH=84h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
	■AH=00hのとき
	BX=セクタ長
	    0100h: 256バイト
	    0200h: 512バイト
	    0400h: 1024バイト
	CX=シリンダ数-1
	DH=ヘッド数
	DL=セクタ数(1トラックあたり)
解説  o ディスクの諸元を取得する。
      u CXにセットされるシリンダ数は、SCSIインタフェーステクニカルブックの
	記述とは異なり、シリンダ数-1。
      u	システム共通域のパラメータテーブルを参照してその結果を返すだけなので、
	ドライブが接続されていない場合でも必ず正常終了する。
      u ハードディスク以外の装置の諸元を取得することはできない。ハードディスク
	以外の装置の場合、システム共通域のパラメータテーブル(0000:0460h)には、
	デバイスタイプ値などが格納されている。このファンクションを実行すると、
	その内容をハードディスクの諸元と同じように解釈して意味のない値を返す
	だけである。
      u 3.5"MO、5"MOが接続されている場合、SCSI BIOSはシステム共通域の
	パラメータテーブル(0000:0460h)にデバイスタイプ値を格納する。
	ところが、MS-DOS 5.0はこのパラメータテーブルをMOの諸元にあわせて
	書き換える。このため、MS-DOS 5.0環境下ではMOの諸元が得られる。
      u このファンクションで得られる諸元は、必ずしもハードディスクの物理的な
	構造と一致しているとは限らない。
関連	0000:0460h


INT 1Bh - Function 05h(SASI/SCSI/ESDI/IDE)
分類	DISK BIOS
名前	データの書き込み (WRITE DATA)
対象	SASI, SCSI, ESDI, IDE
入力	AH=
	    ■[SASI・ESDI・IDE]
	    bit 7,6=00b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=0101b
	    ■[SCSI]
	    bit 7=0
	    bit 6=e
		1=エラーセクタ通知あり
		0=エラーセクタ通知なし
	    bit 5,4=00b
	    bit 3〜0=0101b
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI・IDE    |リニアセクタアドレス  |00h,01h,03h
	SASI・IDE    |絶対セクタアドレス    |80h,81h,83h
	ESDI        |リニアセクタアドレス  |02h
	ESDI        |絶対セクタアドレス    |82h
	SCSI        |リニアセクタアドレス  |20〜26h
	SCSI        |絶対セクタアドレス    |A0〜A6h
	------------+----------------------+-----------
	BX=転送バイト数
	■リニアセクタアドレス指定時
	    DX:CX=リニアセクタアドレス(0〜)
	■絶対セクタアドレス指定時
    	    CX=シリンダ番号(0〜)
    	    DH=ヘッド番号(0〜)
    	    DL=セクタ番号(0〜)
	ES:BP=転送アドレス
出力	CF=終了条件
	  1=異常終了
	  0=正常終了
	AH=ステータス情報
	■[SCSI] AH bit 6=1(エラーセクタ通知あり)でエラー発生のとき
	DX,CX=エラーセクタアドレス
解説  o 指定されたセクタにデータを書き込む。
	リニアセクタアドレス指定を用いれば、MOへの書き込みも行える。
      o ES:BP(転送アドレス)とBX(転送バイト数)は、転送領域が物理アドレスの
	64Kバイトの境界を跨がないように設定する必要がある。たとえば、
	ES:BP=7000:FF00h, BX=0400hのような領域を指定することはできない。
	これに反したとき、SASI・ESDI・IDE BIOSではDMAバウンダリエラーが起きる。
      u	SCSI BIOSはDMAバウンダリのチェックをしていない。転送領域がセグメントを
	跨いでいると、セグメント内でラップアラウンドが起きるので注意が必要。
      o	BX(転送バイト数)には、セクタ長の整数倍を指定しなければならない。
	セクタ長で割り切れない値を指定すると、端数は切り捨てられる。
      u BX(転送バイト数)に0000hを指定すると、64Kバイトの転送を
	行う。(Undocumented)
	ただし、転送を行わずに異常終了するBIOSもある模様。
      u BX(転送バイト数)に1〜セクタ長-1を指定した場合、SASI・ESDI BIOSはハング
	する。SCSI BIOSは転送せずに正常終了する。IDE BIOSは64Kバイト転送する
	が、DMAバウンダリのチェックをしない。転送領域がセグメントを跨いで
	いると、セグメント内でラップアラウンドが起きるので注意が必要。
      o PC-H98は、1Mバイト超の領域に転送可能なインダイレクトモードをサポート
	している。インダイレクトモードが使用可能かどうかは0000:0590h bit 6
	(SASI・ESDI), bit 4(SCSI)で判断できる。インダイレクトモードを指定する
	場合は、0000:0590h bit 7(SASI・ESDI), bit 5(SCSI)を1にする。この
	ビットが0のときは、従来互換のダイレクトモードである。
	ダイレクトモードでは、直接ES:BPで転送アドレスを指定するが、
	インダイレクトモードのときは、ES:BPで間接的に転送アドレスを指定する
	ようになる。すなわち、転送アドレスは32ビットのリニアアドレスでメモリ
	上に書き込む。ES:BPで、32ビットのリニアアドレスが書き込まれたメモリの
	アドレスを指定する。
	インダイレクトモードで一度BIOSを実行すると、必ずダイレクトモードに
	戻される。
関連	INT 1Bh - Function 02h(SCSI)


INT 1Bh - Function 06h(SASI/SCSI/ESDI/IDE)
分類	DISK BIOS
名前	データの読み出し (READ DATA)
対象	SASI, SCSI, ESDI, IDE
入力	AH=
	    ■[SASI・ESDI・IDE]
	    bit 7,6=00b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=0110b
	    ■[SCSI]
	    bit 7=0
	    bit 6=e
		1=エラーセクタ通知あり
		0=エラーセクタ通知なし
	    bit 5,4=00b
	    bit 3〜0=0110b
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI・IDE    |リニアセクタアドレス  |00h,01h,03h
	SASI・IDE    |絶対セクタアドレス    |80h,81h,83h
	ESDI        |リニアセクタアドレス  |02h
	ESDI        |絶対セクタアドレス    |82h
	SCSI        |リニアセクタアドレス  |20〜26h
	SCSI        |絶対セクタアドレス    |A0〜A6h
	------------+----------------------+-----------
	BX=転送バイト数
	■リニアセクタアドレス指定時
	    DX:CX=リニアセクタアドレス(0〜)
	■絶対セクタアドレス指定時
    	    CX=シリンダ番号(0〜)
    	    DH=ヘッド番号(0〜)
    	    DL=セクタ番号(0〜)
	ES:BP=転送アドレス
出力	CF=終了条件
	  1=異常終了
	  0=正常終了
	AH=ステータス情報
	■[SCSI] AH bit 6=1(エラーセクタ通知あり)でエラー発生のとき
	DX,CX=エラーセクタアドレス
解説  o 指定されたセクタからデータを読み込む。
	リニアセクタアドレス指定を用いれば、MOやCD-ROM(SCSI)からの読み込みも
	行える。ただし、IDE CD-ROMからの読み込みは、INT 1Bh - Function 16h
	(IDE CD-ROM)を利用する。
      o ES:BP(転送アドレス)とBX(転送バイト数)は、転送領域が物理アドレスの
	64Kバイトの境界を跨がないように設定する必要がある。たとえば、
	ES:BP=7000:FF00h, BX=0400hのような領域を指定することはできない。
	これに反したとき、SASI・ESDI・IDE BIOSではDMAバウンダリエラーが起きる。
      u	SCSI BIOSはDMAバウンダリのチェックをしていない。転送領域がセグメントを
	跨いでいると、セグメント内でラップアラウンドが起きるので注意が必要。
      o	BX(転送バイト数)には、セクタ長の整数倍を指定しなければならない。
	セクタ長で割り切れない値を指定すると、端数は切り捨てられる。
      u BX(転送バイト数)に0000hを指定すると、64Kバイトの転送を
	行う。(Undocumented)
	ただし、転送を行わずに異常終了するBIOSもある模様。
      u BX(転送バイト数)に1〜セクタ長-1を指定した場合、SASI・ESDI BIOSはハング
	する。SCSI BIOSは転送せずに正常終了する。IDE BIOSは64Kバイト転送する
	が、DMAバウンダリのチェックをしない。転送領域がセグメントを跨いで
	いると、セグメント内でラップアラウンドが起きるので注意が必要。
      o PC-H98は、1Mバイト超の領域に転送可能なインダイレクトモードをサポート
	している。インダイレクトモードが使用可能かどうかは0000:0590h bit 6
	(SASI・ESDI), bit 4(SCSI)で判断できる。インダイレクトモードを指定する
	場合は、0000:0590h bit 7(SASI・ESDI), bit 5(SCSI)を1にする。この
	ビットが0のときは、従来互換のダイレクトモードである。
	ダイレクトモードでは、直接ES:BPで転送アドレスを指定するが、
	インダイレクトモードのときは、ES:BPで間接的に転送アドレスを指定する
	ようになる。すなわち、転送アドレスは32ビットのリニアアドレスでメモリ
	上に書き込む。ES:BPで、32ビットのリニアアドレスが書き込まれたメモリの
	アドレスを指定する。
	インダイレクトモードで一度BIOSを実行すると、必ずダイレクトモードに
	戻される。
関連	INT 1Bh - Function 16h(IDE CD-ROM)


INT 1Bh - Function 07h(SASI/SCSI/ESDI/IDE)
分類	DISK BIOS
名前	シリンダ0へシークする (RECALIBRATE)
対象	SASI, SCSI, ESDI, IDE
入力	AH=
	    ■[SASI・ESDI・IDE]
	    bit 7,6=00b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=0111b
	    ■[SCSI]
	    07h
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI・IDE    |リニアセクタアドレス  |00h,01h,03h
	SASI・IDE    |絶対セクタアドレス    |80h,81h,83h
	ESDI        |リニアセクタアドレス  |02h
	ESDI        |絶対セクタアドレス    |82h
	SCSI        |リニアセクタアドレス  |20〜26h
	SCSI        |絶対セクタアドレス    |A0〜A6h
	------------+----------------------+-----------
出力	CF=終了条件
	  1=異常終了
	  0=正常終了
	AH=ステータス情報
解説  o シリンダ0にシークする。
関連	


INT 1Bh - Function 08h(IDE)
分類	DISK BIOS
名前	HD CACHE制御
	Undocumented
対象	IDE(PC-9821Ap2・As2・Bf・Bp・Bs・Be・Cs2・Ce2・Ts, PC-9801BX2・BS2・BA2)
入力	AH=08h
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	IDE         |00h,01h,80h,81h
	------------+-----------
	DL=キャッシング状態
	    00h=キャッシュOFF
	    01h=キャッシュON
	    FFh=キャッシュ状態取得
出力	AH=出力ステータス
	DL=キャッシング状態
	    00h=キャッシュOFF
	    01h=キャッシュON
解説  o キャッシュ状態をコントロールする。
関連	


INT 1Bh - Function 08h(SASI)
分類	DISK BIOS
名前	代替トラックの指定 (ASSIGN ALTERNATE TRACK)
対象	SASI
入力	AH=08h
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI        |リニアセクタアドレス  |00h,01h
	SASI        |絶対セクタアドレス    |80h,81h
	------------+----------------------+-----------
	BX=04h(バッファ長)
	■リニアセクタアドレス指定時
	    DX:CX=代替トラック上のセクタアドレス(0〜)
	■絶対セクタアドレス指定時
    	    CX=代替トラックのシリンダ番号(0〜)
    	    DH=代替トラックのヘッド番号(0〜)
	    DL=00h
	ES:BP=代替トラックアドレスを格納する4バイトのバッファアドレス
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o INT 1Bh - Function 0Bh(SASI)とペアで、代替トラックの割り当て処理に
	使用する。
	ハードディスクコントローラに代替トラックアドレスを通知する。
      u '86年版テクニカルデータブックにのみこのファンクションの解説が
	掲載されている。
関連	INT 1Bh - Function 0Bh(SASI)


INT 1Bh - Function 09h(SCSI/ESDI)
分類	DISK BIOS
名前	トラック/セクタの代替処理 (REASSIGN BLOCKS)
対象	SCSI, ESDI
入力	AH=
	    ■[SCSI]
	    AH=09h
	    ■[ESDI]
	    bit 7,6=00b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=1001b
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	ESDI        |02h,82h
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
	BX=DEFECT LISTバッファのバイト数
	ES:BP=DEFECT LISTバッファの先頭アドレス
	<DEFECT LISTの形式>
	----------------+-------------------------
	アドレス        |内容
	----------------+-------------------------
	ES:BP+00h(WORD) |0000h
	ES:BP+02h(WORD) |不良セクタ情報の数×4
	ES:BP+04h(DWORD)|不良セクタの論理アドレス1
	     :          |          :
	ES:BP+xxh(DWORD)|不良セクタの論理アドレスn
	----------------+-------------------------
	* 不良セクタの論理アドレスは昇順に格納する
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない,
		 |指定されたデバイスは存在しない
	98h(CF=1)|Defect List Error
	         |DEFECT LISTの読み込み中にエラーが起こった
	A8h(CF=1)|No Defect Spare Location
	         |代替領域がなくなったため、代替処理ができない
	---------+------------------------------------------
解説  o 不良トラックに代替トラックを割り当てる。
      o SCSI HDの場合、ソフトセクタのディスクではトラック単位で、
	ハードセクタのディスクではセクタ単位で代替が行われる。
関連	INT 1Bh - Function 0Ch(SCSI/ESDI)
	INT 1Bh - Function 8Ch(SCSI/ESDI)


INT 1Bh - Function 0Ah(SCSI/ESDI)
分類	DISK BIOS
名前	セクタ長の指定 (SET SECTOR)
対象	SCSI,ESDI
入力	AH=0Ah
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	ESDI        |02h,82h
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
	BH=セクタ長
	    01h= 256バイト(SCSI, ESDI 40MB, ESDI 100MB)
	    02h= 512バイト(SCSI, ESDI 40MB)
	    04h=1024バイト(SCSI)
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
		 |指定されたデバイスは存在しない
		 |不正なセクタ長が指定された
	---------+------------------------------------------
解説  o INT 1Bh - Function 0Dh(SCSI/ESDI)でフォーマットするときの
	セクタ長を指定する。
関連	INT 1Bh - Function 0Dh(SCSI/ESDI)


INT 1Bh - Function 0Bh(SASI)
分類	DISK BIOS
名前	不良トラックに代替トラック割当 (FORMAT BAD TRACK)
対象	SASI
入力	AH=0Bh
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI        |リニアセクタアドレス  |00h,01h
	SASI        |絶対セクタアドレス    |80h,81h
	------------+----------------------+-----------
	BX=04h(バッファ長)
	■リニアセクタアドレス指定時
	    DX:CX=不良トラック上のセクタアドレス(0〜)
	■絶対セクタアドレス指定時
    	    CX=不良トラックのシリンダ番号(0〜)
    	    DH=不良トラックのヘッド番号(0〜)
    	    DL=00h
	ES:BP=代替トラックアドレスが格納されているバッファアドレス
	* 直前にINT 1Bh - Function 08h(SASI)を実行したときと同じアドレス
出力	CF=終了条件
	  1=異常終了
	  0=正常終了
	AH=ステータス情報
解説  o INT 1Bh - Function 08h(SASI)とペアで、代替トラックの割り当て処理に
	使用する。
	不良トラックに代替トラックを割り当てる。
      u '86年版テクニカルデータブックにのみこのファンクションの解説が
	掲載されている。
関連	INT 1Bh - Function 08h(SASI)


INT 1Bh - Function 0Ch(SCSI/ESDI)
分類	DISK BIOS
名前	不良セクタリストの取得 (READ DEFECT DATA)
対象	SCSI, ESDI
入力	AH=
	    ■[SCSI]
	    AH=0Ch
	    ■[ESDI]
	    bit 7,6=00b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=1100b
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	ESDI        |02h,82h
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
	BX=DEFECT LISTバッファのバイト数
	ES:BP=DEFECT LISTバッファの先頭アドレス
	* DEFECT LISTの形式は、INT 1Bh - Function 09h(SCSI/ESDI)と同じ
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない,
		 |指定されたデバイスは存在しない
	98h(CF=1)|Defect List Error
	         |DEFECT LISTの読み込み中にエラーが起こった
	---------+------------------------------------------
解説  o BX(DEFECT LISTバッファのバイト数)は、INT 1Bh - Function 8Ch(SCSI/ESDI)
	を実行してCXに返される値から計算する。バッファの大きさはCX×4+4バイト
	必要。
関連	INT 1Bh - Function 09h(SCSI/ESDI)
	INT 1Bh - Function 8Ch(SCSI/ESDI)


INT 1Bh - Function 8Ch(SCSI/ESDI)
分類	DISK BIOS
名前	不良セクタ数の取得 (READ DEFECT NUMBER)
対象	SCSI, ESDI
入力	AH=
	    ■[SCSI]
	    AH=8Ch
	    ■[ESDI]
	    bit 7,6=10b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=1100b
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	ESDI        |02h,82h
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない,
		 |指定されたデバイスは存在しない
	98h(CF=1)|Defect List Error
	         |DEFECT LISTの読み込み中にエラーが起こった
	---------+------------------------------------------
	CX=代替されている不良セクタの個数
解説  o 代替されている不良セクタの個数を取得する。
関連	INT 1Bh - Function 09h(SCSI/ESDI)
	INT 1Bh - Function 0Ch(SCSI/ESDI)


INT 1Bh - Function 0Dh(SASI/IDE)
分類	DISK BIOS
名前	フォーマット(FORMAT TRACK/DRIVE)
対象	SASI, IDE
入力	AH  bit 7=フォーマット単位の指定
		1: ドライブ単位
		0: トラック単位
	    bit 6=0
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=1101b
	AL=DA/UA
	------------+----------------------+-----------
	デバイス種別|セクタアドレス指定方法|DA/UA値
	------------+----------------------+-----------
	SASI・IDE    |絶対セクタアドレス    |80h,81h,83h
	------------+----------------------+-----------
	BH=インターリーブファクタ(通常は05hを指定)
	CX=シリンダ番号(AH bit 7=1のときは0000hを指定)
	DH=ヘッド番号  (AH bit 7=1のときは00hを指定)
	DL=00h
出力	CF=終了条件
	    1=異常終了
	    0=正常終了
	AH=ステータス情報
解説  o トラック単位またはドライブ単位でフォーマットを行う。
      u	IDE HDでは、トラック単位を指定したとき、なにもせずに正常終了する。
	ドライブ単位を指定したときは、実際にはフォーマット処理を行わず、
	ディスク先頭の16KバイトにE5hを書き込み正常終了する。
関連	


INT 1Bh - Function 0Dh(SCSI/ESDI)
分類	DISK BIOS
名前	フォーマット(FORMAT DRIVE/TRACK)
対象	SCSI, ESDI
入力	AH  bit 7   =フォーマット単位の指定
		1: ドライブ単位
		0: トラック単位(指定不可)
	    bit 6〜4=000b
	    bit 3〜0=1111b
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	ESDI        |02h,82h
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
出力	CF=終了条件
	    1=異常終了
	    0=正常終了
	AH=ステータス情報
解説  o フォーマットを行う。
	トラック単位を指定すると、実際にはなにもせずに終了する。
      o フォーマットの前にINT 1Bh - Function 0Ah(SCSI/ESDI)で
	セクタ長を指定する。
関連	INT 1Bh - Function 0Ah(SCSI/ESDI)


INT 1Bh - Function 0Eh(SASI/ESDI/IDE)
分類	DISK BIOS
名前	モード設定(MODE SET)
	Undocumented
対象	SASI, ESDI, IDE(ノーマルモードのみ)
入力	AH bit 7=モード
		 1: 薄型(ハーフハイト)指定
		 0: 厚型(フルハイト)指定
	   bit 6〜0=0001110b
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SASI・IDE    |00h,01h,03h,80h,81h,83h
	ESDI        |02h,82h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない
	---------+------------------------------------------
解説  o AH bit 7で指定されたモードにより、システム共通域内のポインタとフラグを
	変更する。そのアドレスとビット位置を以下の表に示す。
	-------+-----------------+----------------
	DA/UA  |ポインタの位置   |フラグの位置    
	-------+-----------------+----------------
	80h,00h|0000:05E8h(DWORD)|0000:0481h bit 0
	81h,01h|0000:05ECh(DWORD)|0000:0481h bit 1
	82h,02h|D000:005Ah(DWORD)|0000:0590h bit 0
	83h,03h|D000:005Eh(DWORD)|0000:0590h bit 1
	-------+-----------------+----------------
	* ESDI HDのポインタは、ESDI BIOSのセグメントに存在する。
      o AH bit 7=0(厚型指定)のとき、パラメータテーブルへのポインタを
	20MBフルハイトドライブ用に切り替える(パラメータテーブルはHD BIOS内)。
	AH bit 7=1(薄型指定)のとき、パラメータテーブルへのポインタを
	20MBハーフハイトドライブ用に切り替える(パラメータテーブルはHD BIOS内)。
      o フラグは、モードとドライブのセクタ長から、以下の表の通りに設定される。
	----------------+---------+------
	モード(AH bit 7)|セクタ長 |フラグ
	----------------+---------+------
	0               |256バイト|0
	0               |512バイト|1
	1               |256バイト|0
	1               |512バイト|0
	----------------+---------+------
関連	0000:0481h bit 1,0
	0000:0590h bit 1,0
	0000:05E8h
	0000:05ECh


INT 1Bh - Function 0Fh(SASI/SCSI/ESDI/IDE)
分類	DISK BIOS
名前	リトラクト(RETRACT)
対象	SASI, SCSI, ESDI, IDE
入力	AH=
	    ■[SASI,ESDI,IDE]
	    bit 7,6=00b
	    bit 5=r
		1=リトライなし
		0=8回リトライ
	    bit 4=0
	    bit 3〜0=1111b
	    ■[SCSI]
	    AH=0Fh
	AL=DA/UA
	------------+-----------
	デバイス種別|DA/UA値
	------------+-----------
	SASI        |00h,01h,03h,80h,81h,83h
	ESDI        |02h,82h
	SCSI        |20〜26h,A0〜A6h
	------------+-----------
出力	AH=リターンコード
	---------+------------------------------------------
	AH       |内容
	---------+------------------------------------------
	00h(CF=0)|Normal End
	         |正常終了
	40h(CF=1)|Equipment Check
	         |DAで指定されたBIOSは存在しない,
		 |指定されたデバイスはリトラクトできない
	60h(CF=1)|Not Ready
	         |デバイスの準備ができていない
	90h(CF=1)|Time Out
	         |デバイスが接続されていない
	---------+------------------------------------------
解説  o ヘッドを不使用シリンダに移動する。
      o	IDE HDでは、なにもせずに正常終了する。
関連